// authContext.js
import React, { createContext, useContext, useState } from 'react';

// 创建认证上下文
const AuthContext = createContext();

// 定义一个提供者组件，用于包裹需要访问认证状态的组件树
export const AuthProvider = ({ children }) => {
  const [isLoggedIn, setIsLoggedIn] = useState(false);
  const [userRole, setUserRole] = useState(null); // 初始化用户角色为null
const role=localStorage.getItem('role')
  // 登录方法，用于改变状态
  const login = (role) => {
    setIsLoggedIn(true);
    setUserRole(role); // 假设userData对象包含用户角色信息
  };

  // 退出登录方法
  const logout = () => {
    setIsLoggedIn(false);
    setUserRole(null);
  };

  // 提供给上下文的数据和方法
  const authContextValue = {
    isLoggedIn,
    userRole,
    login,
    logout,
  };

  // 返回上下文提供者
  return (
    <AuthContext.Provider value={authContextValue}>
      {children}
    </AuthContext.Provider>
  );
};

// 创建一个自定义Hook，使得组件可以方便地消费认证上下文
export const useAuth = () => useContext(AuthContext);